package com.qf2210.group.three.utils;


import io.jsonwebtoken.*;

import java.util.Date;

import java.util.Map;

public class JwtUtils {
    //密钥
    private static String signkey="#$%HZ2205&*Y";
    /**
     * 生成tokena
     * @param map 负载的个性化数据
     * @param expireMinutes 过期分钟
     * @return
     */
    public static  String createToken(Map<String,Object> map, int expireMinutes){
        JwtBuilder jwtBuilder= Jwts.builder();
        // 设置负载私有数据
        jwtBuilder.addClaims(map);
        // Calendar calendar=Calendar.getInstance();
        //  calendar.add(Calendar.MINUTE,expireMinutes);
        //设置过期时间
        // jwtBuilder.setExpiration(calendar.getTime());
        jwtBuilder.setExpiration( new Date(new Date().getTime()+(1000*60*expireMinutes)));

        //签名
        jwtBuilder.signWith(SignatureAlgorithm.HS256,signkey);
        return  jwtBuilder.compact();
    }

    /**
     * token验证
     * @param token token值
     * @return  调用者要处理异常，只要发生异常代表认证失败
     */
    public static Claims verifyToken(String token){
        return Jwts.parser().setSigningKey(signkey).parseClaimsJws(token).getBody();
    }

}